SessionFactory sessionFactory = new Configuration().configure().
发表评论 663 views A+ 所属分类:Hibrenate Hibernate框架应用步骤 ---- 引入hibernate所需jar包 ---- 1.创建实体类,(最好实现序列化接口 DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN" "http://www.hibernate.org /dtd/hibernate-mapping-3.0.dtd"> <hibernate-mapping> </hibernate-mapping> ``` 3.测试hibernate配置 ``` public 文件,是hibernate的配置文件 ``` <? DOCTYPE hibernate-configuration PUBLIC "-//Hibernate/Hibernate Configuration DTD 3.0//EN" "http://www.hibernate.org
2.一级缓存应用: save()。当session对象调用save()方法保存一个对象后,该对象会被放入到session的缓存中。 get()和load()。 其原理是:第一次调用get()方法, Hibernate先检索缓存中是否有该查找对象,发现没有,Hibernate发送SELECT语句到数据库中取出相应的对象,然后将该对象放入缓存中,以便下次使用,第二次调用 -- EHCache的配置,hibernate.cfg.xml --> <hibernate-configuration> <session-factory> <! DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN" "http://hibernate.sourceforge.net /hibernate-mapping-3.0.dtd" > <hibernate-mapping> <class> <!
进入:http://www.hibernate.org 说明文档: 英文:http://docs.jboss.org/hibernate/annotations/3.5/reference/en/html_single / 中文:http://docs.jboss.org/hibernate/annotations/3.4/reference/zh_cn/html_single/ 下载:hibernate annotation 3.4.0 GA 得到:hibernate-annotations.jar hibernate-commons-annotation.jar ejb3-persistence.jar 数据库 DOCTYPE hibernate-configuration PUBLIC 3 "-//Hibernate/Hibernate Configuration DTD 3.0//EN " 4 "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd"> 5 6 <!
一般情况下,有两种方式可以进行Hibernate的配置,一种是通过配置文件进行配置,另一种是通过注解进行配置。 我将通过注解简单介绍Hibernate框架的配置。 Hibernate框架的配置一般可以分为以下几个步骤: 1.添加基本的Hibernate Jar包 2.添加注解的Jar包 3.编写Hibernate.cfg.xml文件 4.编写POJO文件,并编写注释 DOCTYPE hibernate-configuration PUBLIC 3 "-//Hibernate/Hibernate Configuration DTD 3.0//EN " 4 "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd"> 5 6 <! 如果你用的是其他数据库,你可以点击这里查看相对应的Hibernate.cfg.xml文件:Hibernate 连接MySQL/SQLServer/Oracle数据库的hibernate.cfg.xml文件
一、什么是 Hibernate? 二、Hibernate 基础 ----- 数据库操作 在 Hibernate 出现之前,对数据库操作是基于 JDBC,这中间经历了操作 JDBC、封装 JDBC、ORM 三个阶段。 大多数情况下特别是企业级应用,数据持久化往往也就意味将内存中的数据保存到磁盘上加以固化,而持久化的实现过程则大多通过各种关系数据库来完成。 工程,导入Hibernate的核心jar包、支持C3P0数据库连接池的jar包: c3p0-0.9.5.2.jar hibernate-c3p0-5.2.17.Final.jar org.hibernate hibernate-core 5.2.17.Final org.hibernate hibernate-c3p0 5.2.17.Final com.mchange c3p0 0.9.5.2 2
Hibernate第一天(Hibernate的环境搭建、Hibernate的API、Hibernate的CRUD) 1.1以前学习过Hibernate,不过学习的不太扎实,做的项目也不太多,好久时间没用 1.2 Hibernate框架的学习路线 第一天:Hibernate的入门(Hibernate的环境搭建、Hibernate的API、Hibernate的CRUD) 第二天 :Hibernate的一级缓存、其他的API 第三天:Hibernate的一对多配置、Hibernate的多对多的配置 第四天:Hibernate的查询方式、抓取策略 1.3 1.3.3 Hibernate的概述 1.3.3.1 什么是Hibernate Hibernate:Hibernate是一个持久层的ORM框架。 1.4 Hibernate的入门 1.4.1 Hibernate的入门 1.4.1.1 下载Hibernate的开发环境 Hibernate3.x Hibernate4.x Hibernate5
下载地址:http://www.hxtt.com/access.zip,http://www.hxtt.com/test/hibernate.zip。 配置如下:(URL那里可以使用相对路径) xml 代码 <property name="<em>hibernate</em>.dialect"> com.hxtt.support.hibernate.HxttAccessDialect Hibernate描述文件可以是一个properties或xml 文件,其中最重要的是定义数据库的连接。我这里列出的是一个XML格式的hibernate.cfg.xml描述文件。 DOCTYPE hibernate-configuration PUBLIC "-//Hibernate/Hibernate Configuration DTD//EN" "http://hibernate.sourceforge.net/hibernate-configuration-2.0.dtd"> <hibernate-configuration
前言: 上一篇简单的讲解了下Hibernate的基础知识。这里对Hibernate比较重要的一些知识点,进行总结和归纳。 关于Hibernate映射 关于Hibernate的映射要说明的一点就是关于ID的访问权限,property以及field的区别。以前使用的时候根本没有注意过这个问题,这里简单的强调一下。 由于hibernate在访问实体模型时,是不考虑权限的,因此这样就避免了用户指定主键。 另外一个知识点就是,如果不通过property指定一个列,而使用field。 那么hibernate就会直接访问属性,而不会通过get set访问属性。 关于对象映射标识符OID 这一块相对来说也是hibernate的重点,什么是OID?如何指定OID? Session缓存中的状态变更 这又是Hibernate的一大块重点! ?
DOCTYPE hibernate-configuration PUBLIC "-//Hibernate/Hibernate Configuration DTD 3.0//EN" "http ://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd"> <hibernate-configuration> <! -- 数据库方言 MySQL --> <property name="<em>hibernate</em>.dialect">org.hibernate.dialect.MySQLDialect</property -- 连接池 C3P0 --> <property name="<em>hibernate</em>.connection.provider_class">org.hibernate.connection.C3P0ConnectionProvider ="hibernate.format_sql">true</property> <!
这篇主要讲 hibernate缓存 1.缓存的作用是为了提高效率 2.Hibernate的开发效率比较高,但是执行效率相对较低。 3.Hibernate提供了缓存来提高效率。 hibernate缓存分为:一级缓存,二级缓存,查询缓存。 4.一级缓存又称为 session缓存,是线程级别的缓存。 在映射文件 添加 cache 标签,指明使用二级缓存的方式 <hibernate-mapping package="cn.sxt.pojo"> <class name="Book" table= 在 hibernate.cfg.xml 的通用配置中,开启二级缓存和 3.x 不一致 <! 也就是首先要先开启二级缓存,查询缓存的配置,在hibernate.cfg.xml中添加通用配置 <!
<dependency> <groupId>org.hibernate</groupId> <artifactId>hibernate-validator</artifactId> < compile group: 'org.hibernate', name: 'hibernate-validator', version: '5.3.4.Final' compile group: 'javax.el 和JPA注解一样,如果验证注解添加到字段上,Hibernate就会直接读取字段的值。如果注解到Getter方法上,Hibernate就会调用方法取得值。 在一个类中不要同时应用这两种方式,会导致重复验证的问题。如果在一个集合上应用Valid注解, Hibernate就会递归验证集合中的每一个元素。 通过这个例子,大家应该明白了Hibernate Validator的基本内容。很多框架比如Spring也提供了相关的内容,能方便的将Hibernate Validator整合到项目中。
这篇主要简单间接 hibernate查询 1.数据库操作中最重要的是查询,Hibernate提供了多种查询方式来帮助程序员快速实现查询功能。 2.Hql 查询: Hql :hibernate query language,Hiberante查询语言。 list){ System.out.println(b.getName()+"--"+b.getAuthor()); } } } 4.本地 sql 查询: hibernate ")) .uniqueResult(); System.out.println(result); } } 6.过滤查询 a).定义过滤器---在hibernate-mapping
在持久化类中, 二进制大对象能够声明为 byte[] 或 java.sql.Blob 类型; 字符串能够声明为 java.lang.String 或 java.sql.Clob 实际上在 Java 应用程序中处理长度超过 news.setTitle("CC"); InputStream stream = new FileInputStream("Hydrangeas.jpg"); Blob image = Hibernate.getLobCreator
hibernate:全自动映射 ORM框架,不需要自己手动去写SQL语句 mybatis:半自动ORM框架,需要自己手动去写SQL语句 hibernate以及mybatis区别 开发速度 二级缓存是 SesionFactory级别的缓存,从应用启动到应用结束有效。 Hibernate对象/关系映射能力强,数据库无关性好,对于关系模型要求高的软件,如果用hibernate开发可以节省很多代码,提高效率。 MyBatis容易掌握,而Hibernate门槛较高。 Hibernate优势 Hibernate的DAO层开发比MyBatis简单,Mybatis需要维护SQL和结果映射。 Hibernate数据库移植性很好,MyBatis的数据库移植性不好,不同的数据库需要写不同SQL。 Hibernate有更好的二级缓存机制,可以使用第三方缓存。
Hibernate映射的基本结构 Hibernate在实现ORM功能的时候主要用到的文件有:映射类(*.java)、映射文件(*.hbm.xml)和数据库配置文件(*.properties/* > hibernate.cfg.xml文件中链接数据库的信息 <hibernate-configuration> <session-factory > <property name="<em>hibernate</em>.connection.driver_class :3306/<em>hibernate</em>_first</property> <property name="hibernate.connection.username">root</property> < org.hibernate.dialect.MySQLDialect</property> <mapping resource="com/tgb/<em>hibernate</em>/User.hbm.xml" /> </session-factory> </hibernate-configuration> Hibernate实现的关系映射 上面的代码就是基本映射的体现,接下来会继续介绍常用的关系映射
Hibernate配置 核心配置文件 映射配置文件 配置本地的DTD约束 01 核心配置文 Hibernate核心配置文件传递的是连接数据库的必备信息,还有一些可选配置,所以在一个使用Hibernate DOCTYPE hibernate-configuration PUBLIC "-//Hibernate/Hibernate Configuration DTD 3.0//EN" "http ## MySQL #hibernate.dialect org.hibernate.dialect.MySQLDialect #hibernate.dialect org.hibernate.dialect.MySQLInnoDBDialect DOCTYPE hibernate-configuration PUBLIC "-//Hibernate/Hibernate Configuration DTD 3.0//EN" "http://www.hibernate.org DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN" "http://www.hibernate.org
Hibernate设计了CriteriaSpecification作为Criteria的父接口,以下提供了Criteria和DetachedCriteria. : 1.创建一个Criteria实例 org.hibernate.Criteria接口表示特定持久类的一个查询.Session是Criteria实例的工厂. 接口的一个实例. org.hibernate.criterion.Restrictions类定义了获得某些内置Criterion类型的工厂方法. , “Fritz%”, Hibernate.STRING)) .list(); {alias}占位符应当被替换为被查询实体的列别名. 是Projection的实例工厂.我们通过调用setProjection()应用投影到一个查询.
所以不是我自己去学习的,现在我自己学习了一下,然后我在完善一下Hibernate。 Hibernate的作者是Gavin King。 DOCTYPE hibernate-configuration PUBLIC "-//Hibernate/Hibernate Configuration DTD 3.0//EN" "http://www.hibernate.org <property name="<em>hibernate</em>.connection.url">jdbc:mysql://127.0.0.1:3306/hibernate? DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN" "http://www.hibernate.org /dtd/hibernate-mapping-3.0.dtd"> <hibernate-mapping> <!
对于以数据为中心的程序来说,它们往往只在数据库中使用存储过程来实现商业逻辑,Hibernate可能不是最好的解决方案;对于那些在基于Java的中间层应用中,它们实现面向对象的业务模型和商业逻辑的应用,Hibernate 一个非常简要的Hibernate体系结构的高层概要图 Hibernate运行时体系结构 “最小”的体系结构方案,要求应用程序提供自己的 JDBC 连接并管理自己的事务。 这种方案使用了Hibernate API 的最小子集. “全面解决”的体系结构方案,将应用层从底层的JDBC/JTA API中抽象出来,而让Hibernate来处理这些细节。 Transaction (org.hibernate.Transaction) 应用程序用来指定原子操作单元范围的对象,它是单线程的,生命周期很短。 HelloWorld 要研究怎么做,先得搞清楚需要做什么 根据刚才的学习,做基本的Hibernate应用程序,要完成下面的工作:Object、数据库的表、两种配置文件、客户端程序来调用Hibernate